const app = getApp()

import { pullFriendType, pullFriendName, videoPath, detailOperating } from '../../common/static/api_data'
import { video, uploadFile } from "../../utils/http"
import { upload_api } from "../../common/api/api"
const behavior = require('../relation_behavior')
import { HiddenCall } from '../../request/api.js'
const request = new HiddenCall
import { throttle } from '../../utils/throttle'
Component({
  /**
   *  详情的底部按钮
   * - @author           狄兆璐
   * - @date             2018-07-12
   *  isHouse           是否是房源
   *  code                房客源编号
   *  houseNum      楼牌号
   *  type                 房客源
   *  model              房客源数据model
   *  code                房客编号
   *  houseNum      楼牌号
   *  isLimiteCall      是否限制拨打
   *  detailOperating  房客详情操作
   *  pullFriendType   推送内容字典
   *  pullFriendName 推送人字典
   */
  behaviors: [behavior],
  properties: {
    isHouse: {
      type: Boolean,
      value: true
    },
    model: Object,
    code: String,
    houseNum: String,
    type: String,
    isLimiteCall: {
      type: Boolean,
    },
    // 跟进
    followshow: {
      type: Boolean,
      value: false
    },
    isType: Number,
    resourceType: String
  },
  data: {
    detailOperating,
    pullFriendType,
    pullFriendName,
    record: false, // 记录
    handle: false, // 操作
    isImage: false, // 图片
    isVoice: false, // 音频
    isHouseNum: false, // 楼牌
    isPhone: false, // 电话
    showImgType: false, //上传图片类型
    isCancel: false, // 取消房源
    isDial: false, // 拨号弹窗
    isPull: false, // 推送好友弹窗
    isPullType: false, // 推送类型
    isMark: false, // 设置标识
    lookPhoneList: [], // 查看电话
    isReselect: false, // 重新选择推送类型
    videoModel: [], // 视频model
    isVideo: false,  // 视频弹窗
    message: false,
    isModifyHouseNum: false, // 是否修改楼牌号弹窗
    isBorder: false
  },
  methods: {
    /**
     * 关闭跟进描述拨号查询
     */
    clickMask() {
      this.setData({ followshow: false, isDial: false, isModifyHouseNum: false, isHouseNum: false})
    },
    /**
     * 取消房客源弹框
     * author dzl
     */
    cancel: function () {
      this.setData({
        isCancel: !this.data.isCancel
      })
    },
    /**
     * 取消房客源
     * author dzl
     */
    cancelBtn: function () {
      this.cancelShow({
        "resourceCode": this.data.code
      })
    },
    /**
     * 查看电话
     * author dzl
     */
    phone: function () {
      this.setData({
        isPhone: !this.data.isPhone
      })
      // 调用查看电话接口，进行电话隐藏
      this.lookPhone({ "resourceCode": this.data.code });
    },
    /**
     * 查看楼牌号
     * author dzl
     */
    houseNum: function () {
      this.setData({isHouseNum: !this.data.isHouseNum})
      if (this.data.houseNumberLook) {
        request.lookHouseNumber(this.data.model.houseCode).then((res) => {
          this.setData({ 
            houseNumber: res.result
          })
          return request.lookHouseBoolean(this.data.model.houseCode)
        }).then((res) => {
          this.setData({
            houseNumberLook: res.result.houseNumberLook,
            houseNumbermodifyLook: res.result.houseNumbermodifyLook
          })
        })
      }
    },
    /**
     * 修改出现border
     */
    houseModfiy () {
      this.setData({isBorder: true})
    },
    /**
     * 视频上传
     */
    addVideo: function () {
      // 调用视频
      video().then(res => {
        // 上传提示
        wx.showLoading({ icon: 'loading' })
        // 获取视频地址
        let item = res.tempFilePath
        // 上传视频
        uploadFile(upload_api[1].url, item).then(res => {
          // 正则截取视频地址
          let reg = /^(wxfile\:\/\/|http\:\/\/tmp\/)/ig
          let img_name = item.replace(reg, "")
          // 拼接视频地址放入视频model
          this.data.videoModel.push(`${upload_api[1].url}/houseHiddenCall/${img_name}`)
          // 数据更新关闭视频窗口
          this.setData({
            videoModel: this.data.videoModel,
            isVideo: true
          })
          // 关闭提示
          wx.hideLoading()
        })
      })
    },
    /**
     * 清空video数据
     * author wl
     */
    clearVideo() {
      this.setData({ videoModel: [] })
    },
    /**
   * 上传音频显示对话框
   * author dzl
   */
    addVoice() {
      this.setData({
        isVoice: !this.data.isVoice
      })
    },
    /**
     * 上传图片弹出
     * author dzl
     */
    addImage() {
      this.setData({
        isImage: !this.data.isImage,
        showImgType: !this.data.showImgType
      })
    },
    /**
     * 打开房客源详情底部操作列表
     */
    handleTap: function (e) {
      request.lookHouseBoolean(this.data.model.houseCode).then((res) => {
        this.setData({
          handle: !this.data.handle,
          detailndex: e.currentTarget.dataset.index,
          houseNumberLook: res.result.houseNumberLook,
          
          houseNumbermodifyLook: res.result.houseNumbermodifyLook
        })
      })
      // 关闭记录列表
      this.hiddenMedia()
    },
    /**
     * 打开房客源详情底部记录列表
     */
    recordTap: function (e) {
      this.setData({
        record: !this.data.record,
        detailndex: e.currentTarget.dataset.index
      })
      // 关闭操作列表
      this.hiddenOperating()
    },
    /**
     * 短信发送
     * @author wl
     */
    messageTap(e) {
      // 打开拨号弹窗获取索引
      this.setData({
        message: !this.data.message,
        detailndex: e.currentTarget.dataset.index
      })
      // 设置短信详情标志
      let data = {
        callType: "sms",
        model: this.data.model
      }
      // 跳转带入短信数据
      wx.navigateTo({
        url: `../../pages/mailing_detail/index?model=${JSON.stringify(data)}`
      })
    },
    /**
     * 查看电话or拨打查询
     * author wl
     */
    lookPhone: function (data) {
      // 根据房客编号查询电话
      request.lookPhone(data.resourceCode, "hide").then((res) => {
        // 查看电话列表赋值更新
        this.setData({ callPhoneList: JSON.parse(JSON.stringify(res)) })
        // 循环截取替换手机号隐藏6位
        res.forEach((el, i) => {
          res[i].phone = el.phone.substr(0, 3) + "****" + el.phone.substr(7)
        })
        // 更新电话查看列表
        this.setData({ lookPhoneList: res })
      })
    },
    /**
     * 取消房客源展示
     */
    cancelShow: function (data) {
      // 传送房客编号进行取消展示
      request.cancelShow(data.resourceCode).then((res) => {
        // 关闭取消窗口
        this.setData({
          isCancel: false
        })
      })
    },
    /**
     * 拨号弹窗显示隐藏
     */
    dialQuery(e) {
      // 打开拨号弹窗获取索引
      this.setData({
        isDial: !this.data.isDial,
        detailndex: e.currentTarget.dataset.index
      })
      // 进行拨号查询
      this.lookPhone({ "resourceCode": this.data.code })
      // 关闭操作和记录列表
      this.hiddenOperating()
      this.hiddenMedia()
    },
    /** 
     * 取消限制拨打弹窗
     */
    cancelCallDialog(e) {
      // 打开取消拨打限制弹窗
      this.setData({
        EnableCall: true,
        detailndex: e.currentTarget.dataset.index
      })
      // 关闭操作列表和记录列表
      this.hiddenOperating()
      this.hiddenMedia()
    },
    /**
     * 获取解除限制的手机号
     */
    enableValue(e) {
      this.setData({
        enableInput: e.detail.value
      })
    },
    /**
    * 取消限制拨打方法
    */
    cancelEnable: function (e) {
      // 调用解除限制拨打传入限制手机号
      request.freeCall({ called: this.data.enableInput, caller: app.globalData.caller, resourceCode: this.data.code }).then(res => {
        // 关闭限制弹窗
        this.close()
      })
    },
    /**
     * 关闭限制弹窗
     */
    close() {
      this.setData({
        EnableCall: false
      })
    },
    /**
     * 推送好友弹窗
     * author wl
     */
    pushFriend() {
      this.setData({
        isPull: !this.data.isPull,
        isPullType: true
      })
    },
    /**
     * 选择推送好友类型
     * author wl
     * showPullValue 选择类型的值String
     * pullTypeValue 选择类型的值Array
     */
    pullTypeChange: function (e) {
      // 拿到选择推送好友
      let value = e.detail.value.value.join("，")
      // 数据更新
      this.setData({
        pullFriendType: e.detail.model,
        showPullValue: value,
        pullTypeValue: e.detail.value.value
      })
    },
    /**
     * 推送好友列表展示
     * author wl
     */
    pullFriendShow() {
      // 推送好友是否选择好友，有关闭弹窗，无友好提示
      this.data.showPullValue ? this.setData({ isPullType: false }) :
        wx.showToast({ title: '请选择推送类型！', icon: 'none' })
    },
    /**
     * 关闭推送弹窗
     * author wl
     */
    hidePull() {
      this.setData({ isPull: false, isReselect: false })
    },
    /**
     * 修改推送类型
     * author wl
     */
    reselectPullType() {
      this.setData({ isReselect: !this.data.isReselect })
    },
    /**
     * 选择推送好友的名字
     * author wl
     */
    pullFriendChange(e) {
      this.setData({
        pullFriendName: e.detail.model,
        pullNameValue: e.detail.value.value
      })
    },
    /**
     * 推送上传
     * author wl
     * pullTypeValue 推送类型
     * pullNameValue 内容
     */
    pullUpload() {
      // 推送上传类型
      let dataName = this.data.pullTypeValue
      // 推送上传内容
      let dataType = this.data.pullNameValue
      let model = {
        resourceCode: this.data.code
      }
      // 类型上传内容
      if (dataName && dataType.length > 0) {
        // 关闭推送窗口
        this.setData({ isPull: false })
      } else {
        // 友好提示
        wx.showToast({ title: '请填写完整', icon: 'none' })
      }
    },
    /**
     * 开启||关闭设置标识框弹窗
     * author wl
     */
    Identification() {
      this.setData({ isMark: !this.data.isMark })
    },
    /**
     * 设置标识，计算用户输入的值用逗号计算
     * author wl
     */
    textareaValue: function (e) {
      // 辨别是中文逗号还是英文逗号
      let str = e.detail.value.split('，').length - 1
      let str1 = e.detail.value.split(',').length - 1
      // 逗号大于
      if (str + str1 > 4) {
        // 获取输入的标识
        let value = e.detail.value
        value = value.substring(0, value.length - 1)
        // 计算输入字数限制多设置4个标识
        this.setData({
          textareaCount: e.detail.value.length - 1,
          textareaWorth: value
        })
      } else {
        // 逗号不大于4，输入限制字数500
        this.setData({ textareaCount: 500 })
      }
    },
    /**
     * 取消设置标识
     * author wl
     */
    markCancel() {
      // 关闭设置标识弹窗
      this.Identification()
      // 清空标识文字
      this.setData({ textareaWorth: "" })
    },
    /**
     * 设置标识确定提交数据
     * author wl
     */
    markConfirm() {
      // 关闭标识弹窗清空标识值
      this.markCancel()
      // this.interchangeable()
    },
    /**
     * 隐藏房客源详情底部操作功能列
     * author wl
     */
    hiddenOperating() {
      this.setData({ handle: false })
    },
    /**
     * 隐藏房客源详情底部记录功能列
     * author wl
     */
    hiddenMedia() {
      this.setData({ record: false })
    },
    /**
     * 隐藏房客详情底部全部功能列
     * author wl
     */
    hiddenDetail() {
      this.setData({ record: false, handle: false })
    },
    addDescription(e) {
      this.triggerEvent('addDescription', e.detail)
    },
    addFollow(e) {
      this.triggerEvent('addFollow', e.detail)
    },
    deleteRoom () {
      // 友好提示
      wx.showToast({ title: '正在开发中...', icon: 'none' })
    },
    /**
     * 修改楼牌号
     * update 赵美阳
     */
    modifyHouseNum () {
      // request.lookHouseNumber(this.data.model.houseCode).then((res) => {
      //   this.setData({ initHouseData: res.result, isModifyHouseNum: !this.data.isModifyHouseNum})
      //   return request.lookHouseBoolean(this.data.model.houseCode)
      //   }).then((res) => {
      //     this.setData({
      //       houseNumberLook: res.result.houseNumberLook,
      //       houseNumbermodifyLook: res.result.houseNumbermodifyLook
      //     })
      // })
       //获取房源code
       var houseCode = this.data.model.houseCode
         //跳转到查看页面
       wx.navigateTo({
          url: `/pages/housenum_look/index?houseCode=${houseCode}`
       })
    },
    /**
     * 取消修改
     */
    cancelHouse () {
      this.setData({ isModifyHouseNum: false })
    }
  }
})
